import java.util.ArrayList;
import java.util.List;

class StudentCourseTime {
    String student;
    String course;
    int day; // 0 for Saturday, 1 for Sunday
    int period; // 1 for 08:00-10:00, 2 for 10:00-12:00, 3 for 14:00-16:00, 4 for 16:00-18:00

    public StudentCourseTime(String student, String course, int day, int period) {
        this.student = student;
        this.course = course;
        this.day = day;
        this.period = period;
    }

    @Override
    public String toString() {
        return student + " - " + course + " (星期 " + (day + 6) + "具体时间第" + period +"节课" +")";
    }
}

class ClassScheduleGenerator {

    public static void main(String[] args) {
        // 假设的学生数据，每个元素包含：学生姓名，课程，星期几，时间段
        String[][] studentData = {
                {"学生1", "课程A", "0", "1"}, {"学生2", "课程A", "0", "1"}, {"学生3", "课程B", "0", "2"}, {"学生4", "课程B", "0", "2"},
                {"学生5", "课程C", "0", "3"}, {"学生6", "课程C", "0", "3"}, {"学生7", "课程D", "0", "4"}, {"学生8", "课程D", "0", "4"},
                {"学生9", "课程A", "1", "1"}, {"学生10", "课程A", "1", "1"}, {"学生11", "课程B", "1", "2"}, {"学生12", "课程B", "1", "2"},
                {"学生13", "课程C", "1", "3"}, {"学生14", "课程C", "1", "3"}, {"学生15", "课程D", "1", "4"}, {"学生16", "课程D", "1", "4"},
                {"学生17", "课程A", "0", "1"}, {"学生18", "课程A", "0", "1"}, {"学生19", "课程B", "0", "2"}, {"学生20", "课程B", "0", "2"},
                {"学生21", "课程C", "0", "3"}, {"学生22", "课程C", "0", "3"}, {"学生23", "课程D", "0", "4"}, {"学生24", "课程D", "0", "4"},
                {"学生25", "课程A", "1", "1"}, {"学生26", "课程A", "1", "1"}, {"学生27", "课程B", "1", "2"}, {"学生28", "课程B", "1", "2"},
                {"学生29", "课程C", "1", "3"}, {"学生30", "课程C", "1", "3"}, {"学生31", "课程D", "1", "4"}, {"学生32", "课程D", "1", "4"},
                {"学生33", "课程A", "0", "1"}, {"学生34", "课程A", "0", "1"}, {"学生35", "课程B", "0", "2"}, {"学生36", "课程B", "0", "2"},
                {"学生37", "课程C", "0", "3"}, {"学生38", "课程C", "0", "3"}, {"学生39", "课程D", "0", "4"}, {"学生40", "课程D", "0", "4"},
                {"学生41", "课程A", "1", "1"}, {"学生42", "课程A", "1", "1"}, {"学生43", "课程B", "1", "2"}, {"学生44", "课程B", "1", "2"},
                {"学生45", "课程C", "1", "3"}, {"学生46", "课程C", "1", "3"}, {"学生47", "课程D", "1", "4"}, {"学生48", "课程D", "1", "4"},
                {"学生49", "课程A", "0", "1"}, {"学生50", "课程A", "0", "1"}, {"学生51", "课程B", "0", "2"}, {"学生52", "课程B", "0", "2"},
                {"学生53", "课程C", "0", "3"}, {"学生54", "课程C", "0", "3"}, {"学生55", "课程D", "0", "4"}, {"学生56", "课程D", "0", "4"},
                {"学生57", "课程A", "1", "1"}, {"学生58", "课程A", "1", "1"}, {"学生59", "课程B", "1", "2"}, {"学生60", "课程B", "1", "2"},
                {"学生61", "课程C", "1", "3"}, {"学生62", "课程C", "1", "3"}, {"学生63", "课程D", "1", "4"}, {"学生64", "课程D", "1", "4"},
                {"学生65", "课程A", "0", "1"}, {"学生66", "课程A", "0", "1"}, {"学生67", "课程B", "0", "2"}, {"学生68", "课程B", "0", "2"},
                {"学生69", "课程C", "0", "3"}, {"学生70", "课程C", "0", "3"}, {"学生71", "课程D", "0", "4"}, {"学生72", "课程D", "0", "4"},
                {"学生73", "课程A", "1", "1"}, {"学生74", "课程A", "1", "1"}, {"学生75", "课程B", "1", "2"}, {"学生76", "课程B", "1", "2"},
                {"学生77", "课程C", "1", "3"}, {"学生78", "课程C", "1", "3"}, {"学生79", "课程D", "1", "4"}, {"学生80", "课程D", "1", "4"},
                {"学生81", "课程A", "0", "1"}, {"学生82", "课程A", "0", "1"}, {"学生83", "课程B", "0", "2"}, {"学生84", "课程B", "0", "2"},
                {"学生85", "课程C", "0", "3"}, {"学生86", "课程C", "0", "3"}, {"学生87", "课程D", "0", "4"}, {"学生88", "课程D", "0", "4"},
                {"学生89", "课程A", "1", "1"}, {"学生90", "课程A", "1", "1"}, {"学生91", "课程B", "1", "2"}, {"学生92", "课程B", "1", "2"},
                {"学生93", "课程C", "1", "3"}, {"学生94", "课程C", "1", "3"}, {"学生95", "课程D", "1", "4"}, {"学生96", "课程D", "1", "4"},
                {"学生97", "课程A", "0", "1"}, {"学生98", "课程A", "0", "1"}, {"学生99", "课程B", "0", "2"}, {"学生100", "课程B", "0", "2"}

        };
        List<StudentCourseTime> scheduleData = new ArrayList<>();
        for (String[] data : studentData) {
            scheduleData.add(new StudentCourseTime(data[0], data[1], Integer.parseInt(data[2]), Integer.parseInt(data[3])));
        }

        // 打印周六的课表，day表示周六
        System.out.println("周六课表:");
        printSchedule(scheduleData, 0);

        // 打印周日的课表,day1表示周日
        System.out.println("周日课表:");
        printSchedule(scheduleData, 1);
    }

    // 打印课表的方法
    private static  void printSchedule(List<StudentCourseTime> scheduleData, int day) {
        String[] periods = {"08:00-10:00", "10:00-12:00", "14:00-16:00", "16:00-18:00"};
        for (int period = 1; period <= 4; period++) {
            System.out.println("时间段 " + periods[period - 1] + ":");
            List<String> studentsInPeriod = new ArrayList<>();
            for (StudentCourseTime sc : scheduleData) {
                if (sc.day == day && sc.period == period) {
                    studentsInPeriod.add(sc.toString());

                }
            }
            for (String studentCourse : studentsInPeriod) {
                System.out.println(studentCourse);
            }
        }
    }
}